package city.spring.modules.consumptionItem.repository;

import city.spring.modules.consumptionItem.entity.ConsumptionCategoryEntity;
import city.spring.modules.consumptionItem.vo.ConsumptionCategoryEntityVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 存储库：收费项目类别
 *
 * @author pxm
 * @date 2020-08-05 16:19:31
 */
@Repository
public interface ConsumptionCategoryRepository extends BaseMapper<ConsumptionCategoryEntity> {
    /**
     * 获取 pid为null的 消费项目类别 列表展示（子类别）
     *
     * @return
     */
    List<ConsumptionCategoryEntity> getLittleCategory();

    /**
     * 获取 pid不为null的 消费项目类别 列表展示（父类别）
     *
     * @return
     */
    List<ConsumptionCategoryEntity> getFatherCategory();

    /**
     * 分页获取消费项目类别
     *
     * @param page    分页对象
     * @param wrapper 查询对象
     * @return 消费项目类别
     */
    IPage<ConsumptionCategoryEntityVO> listPage(Page<? extends ConsumptionCategoryEntity> page, @Param(Constants.WRAPPER) Wrapper<? extends ConsumptionCategoryEntity> wrapper);

    ConsumptionCategoryEntity getConsumptionCategoryById(@Param("id") String id);
}